home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earcd / dev / e / littleto.lha / EPD.e < prev    next >
Text File  |  1997-03-16  |  5KB  |  263 lines

  1.  
  2.  
  3. OPT OSVERSION=37
  4. MODULE 'tools/EasyGUI_lite', 'tools/exceptions', 'libraries/gadtools',
  5.        'gadtools','libraries/gadtools','intuition/intuition',
  6.        'graphics/text','workbench/startup','workbench/workbench',
  7.        'tools/constructors','Asl','libraries/Asl','dos/dostags','dos/dos',
  8.        'exec/memory','amigaguide','libraries/amigaguide'
  9.  
  10.  
  11. OBJECT makes
  12. s             
  13. ENDOBJECT
  14.  
  15.  
  16. DEF     s[50]:STRING,
  17.         mystr,gh,
  18.     nk,altstd,mycon,
  19.     pack,umf[5]:STRING,
  20.         ioi[255]:STRING,y,texte,mywb,fdev[10]:STRING,
  21.         bn[101]:ARRAY OF makes
  22.  
  23.  
  24. PROC main() HANDLE
  25. VOID '$VER:EPD_Unpack-GUI © F.Bunk  V1.0beta  (12.03.1997)' 
  26. FOR y:=0 TO 101
  27.   bn[y].s:=String(255) 
  28. ENDFOR  
  29. StrCopy(bn[100].s,'RAM:',ALL)
  30. StrCopy(bn[99].s,bn[100].s,ALL)
  31. StrCopy(fdev,'DF0:',ALL)
  32. StrCopy(s,'Ram:')
  33. StrCopy(umf,'c:',ALL)
  34. reporterr(anlauf())
  35. mystartup()
  36. direntry()
  37. mycon:=Open('CON:10/10/600/73/GUI_Output ',1006)
  38. altstd:=stdout
  39. stdout:=mycon
  40. easyguiA('EPD_GUI 1.0',
  41.     [ROWS,
  42.      [LISTV,{myact},'Click for action',5,4,texte,0,NIL,0],
  43.       [SPACEH],
  44.       [EQROWS ,[CYCLE,{v},'DMS to ',[' DMS  >  RAD: ',' DMS  >  DF0: ',NIL],1],
  45.                [CYCLE,{x}, 'Action ',[' Unpack ',' View Text ',NIL],1]],
  46.        [SPACEH],
  47.       [BEVEL,[COLS,
  48.         mystr:=[STR,{mss},' Unpack Path',s,250,10],
  49.         [BUTTON,{masl},'Path_Requester']]]],[EG_GHVAR,{gh},NIL])
  50. beende()
  51. EXCEPT
  52. report_exception()
  53. ENDPROC
  54.  
  55.  
  56. PROC beende()
  57. IF aslbase THEN CloseLibrary(aslbase)
  58. IF amigaguidebase THEN CloseLibrary(amigaguidebase)
  59. stdout:=altstd
  60. Close(mycon)  
  61. ENDPROC
  62.  
  63.  
  64. PROC v(x,y)
  65.  IF y=0 
  66. StrCopy(fdev,'RAD:',ALL)
  67.  ELSE 
  68. StrCopy(fdev,'DF0:',ALL)
  69. ENDIF
  70. ENDPROC
  71.  
  72.  
  73. PROC x(x,y)
  74.  IF y=0 
  75. pack:=TRUE
  76.  ELSE
  77.  pack:=FALSE
  78. ENDIF
  79. ENDPROC
  80.  
  81.  
  82. PROC masl(x)
  83. /*gh:=x*/
  84. aslfilereq()
  85. setstr(gh,mystr,bn[99].s)
  86. ENDPROC
  87.  
  88.  
  89. PROC mss(x,y)
  90. StrCopy(bn[99].s,y,ALL)
  91. ENDPROC
  92.  
  93.  
  94. PROC myact(x,y)
  95. DEF mpack,moi[255]:STRING,umf[255]:STRING,mrun[255]:STRING
  96.      StrCopy(bn[95].s,bn[97].s,ALL)    
  97.      AddPart(bn[95].s,bn[y+1].s,255) 
  98.      StrCopy(ioi,bn[y+1].s,ALL)
  99.   IF pack=0
  100.    nk:=6
  101.         testas()
  102.        IF nk>=0
  103.        guidm()
  104.        ELSE
  105.          WriteF('Kein Readme File !!\n')
  106.        ENDIF
  107.   ELSE
  108.      StrCopy(ioi,bn[95].s,ALL)
  109.       RightStr(moi,ioi,3)
  110.         LowerStr(moi) 
  111.         mpack:=FALSE
  112.      IF mywb=TRUE
  113.       IF StrCmp(moi,'lzx',ALL)
  114.         mpack:=TRUE
  115.        ENDIF
  116.       ENDIF
  117.       IF StrCmp(moi,'lha',ALL)
  118.         mpack:=TRUE
  119.       ELSEIF StrCmp(moi,'lzh',ALL)
  120.         mpack:=TRUE
  121.         StrCopy(moi,'lha',ALL)
  122.       ENDIF
  123. IF mpack=TRUE
  124.         StrAdd(umf,moi,ALL)
  125.         StringF(mrun,'\s x \s \s',umf,ioi,bn[99].s)
  126.        SystemTagList(mrun,[SYS_INPUT,stdout,SYS_OUTPUT,0,NIL,NIL])
  127.      ELSEIF StrCmp(moi,'dms',ALL)
  128.         StrAdd(umf,moi,ALL)
  129.         StringF(mrun,'\s WRITE \s to \s',umf,ioi,fdev)
  130.         SystemTagList(mrun,[SYS_INPUT,stdout,SYS_OUTPUT,0,NIL,NIL])
  131.      ELSE
  132.         WriteF('Kein LHA/LZX/DMS File !!\n')
  133.     ENDIF
  134.   ENDIF
  135. ENDPROC
  136.  
  137.  
  138. PROC aslfilereq()
  139.  DEF req:PTR TO filerequester
  140.  IF req:=AllocFileRequest()
  141.   IF AslRequest(req,[ASL_DIR,bn[99].s,ASLFR_FLAGS2,1,ASL_HAIL,'Unpack Ziel-Pfad',ASL_HEIGHT,180,NIL])
  142.   StrCopy(bn[99].s,req.drawer,ALL)
  143.   RightStr(ioi,bn[99].s,1)
  144.   IF StrCmp(ioi,':',ALL)
  145.   SetStr(bn[99].s,StrLen(bn[99].s)) 
  146.   ELSE
  147.   StrAdd(bn[99].s,'/',1)
  148.   ENDIF
  149.   ENDIF 
  150.   FreeFileRequest(req)
  151.   ENDIF
  152. ENDPROC
  153.  
  154.  
  155.  
  156. PROC testes()
  157. DEF x
  158. nk:=8
  159. LowerStr(ioi)
  160. x:=InStr(ioi,'.info')
  161. nk:=nk-x
  162. x:=InStr(ioi,'.lha')
  163. nk:=nk+x
  164. x:=InStr(ioi,'.lzx')
  165. nk:=nk+x
  166. x:=InStr(ioi,'.dms')
  167. nk:=nk+x
  168. testas()
  169. ENDPROC
  170.  
  171.  
  172. PROC testas()
  173. DEF x
  174. LowerStr(ioi)
  175. x:=InStr(ioi,'.readme')
  176. nk:=nk+x
  177. x:=InStr(ioi,'.txt')
  178. nk:=nk+x
  179. x:=InStr(ioi,'.doc')
  180. nk:=nk+x
  181. x:=InStr(ioi,'.asc')
  182. nk:=nk+x
  183. x:=InStr(ioi,'.e')
  184. nk:=nk+x
  185. x:=InStr(ioi,'.guide')
  186. nk:=nk+x
  187. x:=InStr(ioi,'.dok')
  188. nk:=nk+x
  189. ENDPROC
  190.  
  191.  
  192.  
  193. PROC direntry()
  194. DEF info:fileinfoblock,lock2
  195. texte:=newlist()
  196. y:=1
  197. IF lock2:=Lock(bn[97].s,-2)
  198.  IF Examine(lock2,info)
  199.   WHILE ExNext(lock2,info)
  200.    IF info.direntrytype<1 
  201.    StrCopy(bn[y].s,info.filename,ALL)
  202.    StrCopy(ioi,bn[y].s,ALL)
  203. testes()
  204. IF nk>=0
  205.     Enqueue(texte,newnode(NIL,bn[y].s))
  206.     INC y
  207. ENDIF
  208.     ENDIF
  209.   EXIT y=91 
  210.  ENDWHILE
  211.  ENDIF
  212.  UnLock(lock2)
  213. ENDIF
  214. ENDPROC
  215.  
  216.  
  217. /* Start einer Amigaguidedatei b.z.w. alles wofuer es Datatypes im system gibt*/
  218. PROC guidm()   
  219. DEF ja, myg:newamigaguide,mxlock
  220. mxlock:=Lock(bn[97].s,ACCESS_READ)
  221. myg.lock:=mxlock
  222. myg.screen:=0
  223. myg.pubscreen:=0
  224. myg.hostport:=0
  225. myg.clientport:=0
  226. myg.basename:=0
  227. myg.flags:=2
  228. myg.context:=0
  229. myg.extens:=0
  230. myg.client:=0
  231. myg.name:=ioi
  232. myg.node:=0
  233. myg.line:=0
  234. ja:=OpenAmigaGuideA(myg,NIL)
  235. CloseAmigaGuide(ja)
  236. UnLock(mxlock)
  237. ENDPROC
  238.  
  239.  
  240. PROC reporterr(er)
  241. IF er=1 
  242. Throw("ASL",er)
  243. ELSEIF er=2
  244. Throw("GUID",er)
  245. ENDIF
  246. ENDPROC
  247.  
  248.  
  249. PROC mystartup()
  250. DEF lock1,y,x[15]:STRING
  251. mywb:=TRUE
  252. lock1:=GetProgramDir()
  253. IF lock1
  254.  y:=NameFromLock(lock1,bn[97].s,250)
  255. StrCopy(bn[96].s,bn[97].s,ALL)
  256. ENDIF
  257. ENDPROC
  258.  
  259. PROC anlauf()
  260. IF (aslbase:=OpenLibrary('asl.library',37))=NIL THEN RETURN 1
  261. IF (amigaguidebase:=OpenLibrary('amigaguide.library',37))=NIL THEN RETURN 2  
  262. ENDPROC
  263.